package com.zhejiangzhengyuan.municipal_common.utils.excelFileUtils;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.zhejiangzhengyuan.municipal_common.entity.DevicePo;
import com.zhejiangzhengyuan.municipal_common.service.DeviceService;
import lombok.extern.slf4j.Slf4j;


/**
 * @author lin_ju
 * @since  on 2019/12/19 description 井盖设备修改详细内容
 */
@Slf4j
public class DeviceResolveListener extends AnalysisEventListener<DevicePo> {
  /** 假设这个是一个DAO，当然有业务逻辑这个也可以是一个service。当然如果不用存储这个对象没用。 */
  private DeviceService service;

  /**
   * 如果使用了spring,请使用这个构造方法。每次创建Listener的时候需要把spring管理的类传进来
   *
   * @param service service 处理类
   */
  public DeviceResolveListener(DeviceService service) {
    this.service = service;
  }

  /**
   * 这个每一条数据解析都会来调用
   *
   * @param data one row value. Is is same as {@link AnalysisContext#readRowHolder()}
   */
  @Override
  public void invoke(DevicePo data, AnalysisContext context) {
    // 将封装后的值放入service
    service.updateGeoByName(data);
  }

  /** 所有数据解析完成了 都会来调用 doAfterAllAnalysed */
  @Override
  public void doAfterAllAnalysed(AnalysisContext context) {
    log.info("所有数据解析完成！");
  }
}
